Customizing distribution of an operating system based on detected network carrier by retrieving differences between the distributed operating system and an operating system currently installed on a computing device

ABSTRACT

Technology disclosed herein includes a method for loading a carrier specific OS onto a computing device depending on what network the computing device is connected to. The computing device detects an identity of a network to which a computing device is connected or is to be connected during a network identification process executed on the computing device. The network can be identified, e.g., by examining a subscriber identification module (SIM) card electronically connected to the computing device. The device then sends a request including the identity of the network to a remote registration service. In turn the device receives an instruction from the remote registration service identifying a distribution of an operating system (OS) specific for the network. After retrieving the OS distribution, the device loads the distribution of the operating system on the computing device.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of International Patent ApplicationNo. PCT/US2013/062733, entitled “CUSTOMIZING OPERATING SYSTEM BASED ONDETECTED CARRIER”, which was filed on Sep. 30, 2013, which claims to thebenefit of U.S. Provisional Patent Application No. 61/708,794, entitled“CLOUD COMPUTING INTEGRATED OPERATING SYSTEM”, which was filed on Oct.2, 2012, all of which are incorporated by reference herein in itsentirety.

FIELD OF THE INVENTION

At least one embodiment of the present invention pertains to cloudcomputing, and more particularly, to automatically loading operatingsystem based on network carrier using cloud storage.

BACKGROUND

Wireless devices, e.g., mobile phones, tablets, computers, mobilehotspot devices, etc., are manufactured for use on one or moretelecommunication carrier's networks. Sometime, particular carriersapply different requirements which devices must meet in order to operateon the carrier's network. Typically manufactures and vendors of thedevices modify the hardware and the software (including, e.g., operatingsystems) of the devices to meet carrier-specific requirements.

Users of such devices may need or desire to use the same device incommunication networks of different telecommunication carriers. Forinstance, a user can use a mobile phone with a first carrier in onecountry, and needs to use the same mobile phone with a second carrier inanother country when he travels abroad.

SUMMARY

Technology introduced here provides a mechanism for loading a carrierspecific OS onto a computing device depending on what network thecomputing device is connected to. In accordance with the technologyintroduced here, the computing device detects an identity of a networkto which a computing device is connected or is to be connected, during anetwork identification process executed on the computing device. Thereare multiple ways a network can be identified, e.g., by examining asubscriber identification module (SIM) card electronically connected tothe computing device. The device then sends a request including theidentity of the network to a remote registration service. In turn thedevice receives an instruction from the remote registration serviceidentifying a distribution of an operating system (OS) specific for thenetwork. Once the OS distribution is retrieved, the device loads thedistribution of the operating system on the computing device.

Such a mechanism enables a user to start using a device without the needof manually setting up the device first. For instance, when a userreceives a new mobile phone or mobile device, the user only needs toinsert his SIM card into the device. The device can automatically detectwith which network the SIM card works (e.g., which wireless carrier forthe network) and correspondingly load an operating system customized forthat network. When the mobile device finishes booting up, the user has anew device with a running operating system customized for that networkcarrier, or even further customized for that user.

Other aspects of the technology introduced here will be apparent fromthe accompanying figures and from the detailed description whichfollows.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other objects, features and characteristics of the presentinvention will become more apparent to those skilled in the art from astudy of the following detailed description in conjunction with theappended claims and drawings, all of which form a part of thisspecification. In the drawings:

FIG. 1 illustrates an example system for mobile devices retrieving datafrom a cloud storage service.

FIG. 2 illustrates an example of a mobile device capable of switchingoperating system based on the telecommunication carrier.

FIG. 3 illustrates an example of a carrier environment with which suchmobile devices can switch operating systems based on the network.

FIG. 4 illustrates an example of a message sequence chart for a mobiledevice switching between telecommunication networks.

FIG. 5 illustrates an example of an operating system loading processbased on the identity of the network.

FIG. 6 is a high-level block diagram showing an example of thearchitecture of a computer device, which may represent any electronicdevice or any server within a cloud storage service as described herein.

DETAILED DESCRIPTION

References in this specification to “an embodiment,” “one embodiment,”or the like, mean that the particular feature, structure, orcharacteristic being described is included in at least one embodiment ofthe present invention. Occurrences of such phrases in this specificationdo not all necessarily refer to the same embodiment, however.

FIG. 1 illustrates an example system for mobile devices retrieving datafrom a cloud storage service. The system includes a cloud storageservice 110 configured to store data for mobile devices. In oneembodiment, the cloud storage service 110 can be a storage clusterhaving computer nodes interconnected with each other by a network. Thestorage cluster can communicate with other mobile devices (e.g., mobiledevices 130 or 140) via the Internet. The cloud storage service 110 cancontain storage nodes 112. Each of the storage nodes 112 contains one ormore processors 114 and storage devices 116. The storage devices caninclude optical disk storage, RAM, ROM, EEPROM, flash memory, phasechange memory, magnetic cassettes, magnetic tapes, magnetic disk storageor any other computer storage medium which can be used to store thedesired information.

A cloud communication interface 120 can also be included to receive datato be stored in the cloud storage service. The cloud communicationinterface 120 can include network communication hardware and networkconnection logic to receive the information from electronic devices. Thenetwork can be a local area network (LAN), wide area network (WAN) orthe Internet. The cloud communication interface 120 may include aqueuing mechanism to organize the received synchronization data to bestored in the cloud storage service 110. The cloud communicationinterface 120 can communicate with the cloud storage service 110 to sendrequests to the cloud storage service 110 for storing application statedata and retrieving data.

A mobile device 130 includes an operating system 132 to manage thehardware resources of the mobile device 130. The mobile device 130includes at least one local storage device 138 to store the operatingsystem data, application data, and user data. The mobile device 130 canretrieve data from the cloud storage service 110 via the cloudcommunication interface 120. The mobile device 130 or 140 can be adesktop computer, a laptop computer, a tablet computer, an automobilecomputer, a game console, a smart phone, a personal digital assistant, amobile hotspot device, or other electronic devices capable of runningcomputer applications, as contemplated by a person having ordinary skillin the art.

The computer applications 134 stored in the mobile device 130 caninclude applications for general productivity and information retrieval,including email, calendar, contacts, and stock market and weatherinformation. The computer applications 134 can also include applicationsin other categories, such as mobile games, factory automation, GPS andlocation-based services, banking, order-tracking, ticket purchases orany other categories as contemplated by a person having ordinary skillin the art.

The mobile device 130 or 140 can download data from the cloud storageservice to update or change the operating system 132 or 142 on themobile device 130 or 140. The mobile device 130 or 140 can download thedata using its data communication module 136 or 146. The update orchange of the operating system can be triggered by various events. Forinstance, when the mobile device 130 detects that it has connected to anetwork service of a different mobile network carrier, the mobile device130 can request data from the cloud storage service 110 for an operatingsystem designed for the mobile device 130 running on the mobile networkcarrier.

FIG. 2 illustrates an example of a mobile device capable of switchingoperating system based on the telecommunication carrier. The mobiledevice 200 includes a network detection module 210. The networkdetection module 210 is capable of detecting the network(s) that themobile device 200 is connected to or can be connected to. For instance,the network detection module 210 can detect whether the mobile device200 is connected to a home WiFi network, a work WiFi network, or apublic WiFi network (e.g. airport WiFi network). For example, thenetwork detection module 210 may determine whether it's connected to ahome WiFi network based on the SSID (service set identifier) of the WiFinetwork or the MAC (media access control) address of the WiFi networkgateway.

The network detection module 210 can also detect the mobile networkcarrier of the mobile network that the mobile device 200 is connectedto. For instance, the network detection module 210 is able to detectwhether it is connected to an AT&T or T-Mobile mobile network bycommunicating with a SIM (subscriber identity module) card 225 insertedin a SIM card slot 220 in the mobile device 200. In the illustratedembodiment, the network detection module 210 can request and retrieve anIMSI (international mobile subscriber identity) number or ICCID(Integrated Circuit Card Identifier) number from the SIM card, and usethe IMSI number or ICCID number to determine the mobile network that theSIM card is designed to work with.

The network detection module 210 may further perform its networkdetection functionality when the mobile device 200 boots up and beforean operating system launches on the mobile device 200. In someembodiments, the instructions for the network detection can be stored ina firmware or in a Basic Input/Output System (BIOS) of the mobile device200. The network detection module 210 can also perform its networkdetection functionality during any operation stages of the mobile device200.

Once the network detection module 210 detects the identity of the WiFior mobile network that the mobile device 200 is connected to, the mobiledevice 200 contacts and sends an inquiry 202 to a global registrationservice 280 in order to determine the type and distribution of theoperating system that the mobile device 210 should run. The globalregistration service 280 can be implemented on a web server or on acloud computing service. The inquiry 202 can include the identity of theconnected network, an identity of the mobile device 200, or even anidentity of the user using the mobile device 200. The globalregistration service 280 determines a suggestion of a distribution of anoperating system based on the information included in the inquiry, andsends a message 204 containing an identity of the suggested distributionof the operating system back to the mobile device 210. The suggesteddistribution of the operating system can be a version of the operatingsystem customized for the connected network. The inquiry 202 can be sentout via a WiFi network component 230 or a mobile network component 235that has been connected to a WiFi or mobile network. Likewise, themessage 204 can be received via the WiFi network component 230 or themobile network component 235.

The message 204 sent by the global registration service 280 can includea location link indicating where to retrieve the data of the suggesteddistribution of the operating system. For instance, the location linkmay include a network address of a web server or a cloud storage service290 that stores in the suggested distribution of the operating system.The mobile device 200 is able to download the suggested distribution ofthe operating system from the cloud storage service 290 located by thelocation link in the message 204. The cloud storage service 290 can beimplemented along with the global registration service 280 within acommon cloud computing service. The cloud storage service 290 can alsobe implemented in a cloud computing service separated from the globalregistration service 280, as illustrated in FIG. 2.

In some embodiments, a copy of the suggested distribution of theoperating system can be stored in a local storage 270 of the mobiledevice 200. In some embodiments, a copy of the suggested distribution ofthe operating system can be stored in a web server within the connectedmobile network of the mobile network carrier.

The suggested distribution of the operating system can be distributed tothe mobile device 200 as an over-the-air update. The mobile device 200can receive the suggested distribution of the operating system as a fullimage of the operating system, or as an incremental copy of theoperating system including changes on the operating system or changes tothe framework or applications in the operating system. In someembodiments, the installation of the OS distribution is mandatoryinstead of optional. The user cannot refuse, defer, or alter the updateusing the OS distribution. After the installation of the OSdistribution, the mobile device 200 may need to reboot for the update totake effect.

In some embodiments, the suggested OS distribution includes updates thatdo not require the mobile device 200 to reboot. For instance, thesuggested OS distribution can include asset changes, e.g. changes to thevisuals of icons and taskbar or pre-load of applications. For thesechanges, the mobile device 200 can directly apply the updates withoutthe need to reboot.

If there is any data duplication between the current operating system onthe mobile device 200 and the suggested OS distribution. The mobiledevice 200 does not need to retrieve the entire suggested OSdistribution. The mobile device 200 may retrieve only the differencebetween the current operating system on the mobile device 200 and thesuggested OS distribution.

Besides detecting the identity of the WiFi or mobile network that themobile device 200 is connected to, the network detection module 210 mayfurther detect the identity of the subscriber's number that the mobiledevice 200 is currently using. For instance, the network detectionsmodule 210 can detect that the current subscriber's number belong to anaccount for a corporation. A configuration of the operating systemcustomized for this corporation is automatically pushed to the mobiledevice 200. The mobile device 200 can then automatically change the lookand feel of user interfaces of the mobile device 200, based on thereceived configuration of the operating system for that corporationaccount.

The mobile device 200 illustrated in the FIG. 2 can work with multiplemobile network carriers or telecommunication carriers. FIG. 3illustrates an example of a carrier environment with which such mobiledevices can switch operating systems based on the network. Multiplemobile devices 302, 304, 306 can work with one or more of mobile networkcarriers, 310, 320, 330. For instance, mobile device 302 may beconfigured to operate with carriers 310 and 320. Mobile device 304 maybe configured to operate with carrier 320. Mobile device 306 may beconfigured to work with carriers 310 and 330. The network detectionsmodules of the mobile devices 302, 304, 306 detect the carriers to whichthe mobile devices are currently connected. Accordingly, certainsuggested OS distribution can be distributed to the mobile devices 302,304, 306 based on the carriers to which the mobile devices are currentlyconnected and on the particular mobile devices.

FIG. 4 illustrates an example of a message sequence chart for a mobiledevice 406 switching between telecommunication networks (also referredto as mobile networks). The mobile device 406 establishes a connection400 with a network 408 by exchanging handshake messages. The network 408can be a WiFi network, a mobile phone network, or other type ofcommunication networks. After the establishment of the connection, themobile device 406 detects that it established another connection 402with another network 410. This can happen in various situations. Forinstance, the mobile device 406 may find itself out of the network 408because it is no longer able to connect to the network 408. Then themobile device 406 actively locates the network 410 and initiates thehandshake process. Alternatively, the mobile device 406 keeps theconnection with the network 408 (e.g. a mobile phone network), and thendetects another type of network 410 (e.g. a WiFi network). The mobiledevice initiates the connection to the network 410 in order to beconnected with both networks 408 and 410 (e.g., a mobile phone networkand a WiFi network).

The network detections module of the mobile device 406 detects that themobile device established a new connection with the network 410. Themobile device 406 then reports its network connection status 404 to acloud storage service 414 via the network 410. Alternatively, the mobiledevice 406 can also report to the cloud storage service 414 via thenetwork 408 if it still connects with the network 408. The networkconnection status 404 can include information identifying both themobile device 406 and the network 210.

Once the cloud storage service 414 receives the network connectionstatus 404, it determines a corresponding OS distribution based on themobile device 406 and the new connection with the network 410. The cloudstorage service 414 transmits the OS distribution 420 to the mobiledevice 406. Alternatively, the cloud storage service 414 can transmit alocation of the OS distribution 420 to the mobile device 406. The mobiledevice 406 can retrieve the OS distribution 420 based on the receivedlocation.

The mobile device 406 loads the OS distribution 420 and starts runningthe operating system. If the OS distribution 420 is a collection ofcustomized user interface tweaks and pre-loaded applications, the mobiledevice 406 can load the collection as updates to the currently runningoperating system without restarting the device or operating system. Ifthe OS distribution 420 is an operating system different from thecurrently running operating system, the mobile device 406 may need torestart (e.g., reboot) the device and then load the OS distribution 420.

FIG. 5 illustrates an example of an operating system (OS) loadingprocess 500 based on the identity of the network. The OS loading process500 starts at step 510, where a computing device starts executing anetwork identification process. The network identification process caninclude a device booting process or a network connection process. Forinstance, the computing device can start booting itself or startconnecting a network at step 510. The network identification process canbe triggered by various events, e.g., the computing device changing itslocation, the computing device booting up, a subscriber module of thecomputing device being replaced or inserted, or a previously schedulednetwork detecting event. The subscriber module can be a subscriberidentification module (SIM) card.

At step 520 of the OS loading process 500, the computing device detectsan identity of a network to which the computing device is connected oris to be connected, during the network identification process. Thedetection of the network can be achieved by examining the subscribermodule (e.g. SIM card) electronically connected to the computing device.Alternatively, the detection of the network can be achieved byidentifying a radio frequency of the network, or by identifying aservice set identification (SSID) of the network or a media accesscontrol (MAC) address of a gateway of the network.

Once the network is identified, at step 530, the computing device sendsa request including the identity of the network to a remote registrationservice.

At step 540, the computing device receives an instruction from theremote registration service identifying a distribution of an operatingsystem specific for the network. The instruction from the remoteregistration service responds to the request that the computer devicesends. The instruction can include the location of the distribution ofthe operating system specific for the network. The distribution of theoperating system can be customized based on the identity of the network.Alternatively, the distribution of the operating system can becustomized based on both the identity of the network and an identity ofa user of the computing device. For instance, the identity of the usercan be associated with a corporate account for the user based on thesubscriber number of the computing device, the user identity, or thenetwork connected to the computing device.

Based on the received instruction, at step 550, the computing devicerequests and retrieves the distribution of the operating system, or adifference between the distribution of the operating system and anoperating system currently installed on the computing device, from acloud storage service. In some embodiments, the cloud storage servicecan share a common cloud service or a common cloud server with theremote registration service. In some alternative embodiments, the cloudstorage service can be a dedicated server within the connected network,such as a wireless carrier's network.

After retrieving the OS distribution or the portion of the OSdistribution that is different from the currently running OS, at step560, the computing device loads the distribution of the operating systemon the computing device. Such a loading can be a full over-the-air (OTA)update to the operating system that requires a reboot of the computingdevice. Alternatively, the loading can be an update of OS features (e.g.icons, user interfaces, pre-loaded apps) that does not require a rebootof the computing device.

At step 570, the computing device determines whether the loadingrequires a device reboot. If the loading requires a device reboot, thecomputing device reboots the computing device at step 574 and starts theloaded customized OS distribution at 578. If the loading does notrequire a device reboot, at step 580, the computing device loads thedistribution of the operating system on the computing device by applyingcustomized features of the distribution to an operating system currentlyrunning on the computing device without restarting the computing device.The customized features can include pre-loaded applications or userinterface designs. If the user identity is associated with a corporateaccount, the computing device can apply user interface settings or loadpre-loaded applications specific for the corporate account onto thecomputing device.

FIG. 6 is a high-level block diagram showing an example of thearchitecture of a computer, which may represent any electronic device orany server within a cloud storage service as described herein. Theserver 600 includes one or more processors 610 and memory 620 coupled toan interconnect 630. The interconnect 630 shown in FIG. 6 is anabstraction that represents any one or more separate physical buses,point to point connections, or both connected by appropriate bridges,adapters, or controllers. The interconnect 630, therefore, may include,for example, a system bus, a Peripheral Component Interconnect (PCI) busor PCI-Express bus, a HyperTransport or industry standard architecture(ISA) bus, a small computer system interface (SCSI) bus, a universalserial bus (USB), IIC (I2C) bus, or an Institute of Electrical andElectronics Engineers (IEEE) standard 1394 bus, also called “Firewire”.

The processor(s) 610 is/are the central processing unit (CPU) of theserver 600 and, thus, control the overall operation of the server 600.In certain embodiments, the processor(s) 610 accomplish this byexecuting software or firmware stored in memory 620. The processor(s)610 may be, or may include, one or more programmable general-purpose orspecial-purpose microprocessors, digital signal processors (DSPs),programmable controllers, application specific integrated circuits(ASICs), programmable logic devices (PLDs), trusted platform modules(TPMs), or the like, or a combination of such devices.

The memory 620 is or includes the main memory of the server 600. Thememory 620 represents any form of random access memory (RAM), read-onlymemory (ROM), flash memory, or the like, or a combination of suchdevices. In use, the memory 620 may contain a code 670 containinginstructions according to the techniques disclosed herein.

Also connected to the processor(s) 610 through the interconnect 630 area network adapter 640 and a storage adapter 650. The network adapter 640provides the server 600 with the ability to communicate with remotedevices, over a network and may be, for example, an Ethernet adapter orFibre Channel adapter. The network adapter 640 may also provide theserver 600 with the ability to communicate with other computers. Thestorage adapter 650 allows the server 600 to access a persistentstorage, and may be, for example, a Fibre Channel adapter or SCSIadapter.

The code 670 stored in memory 620 may be implemented as software and/orfirmware to program the processor(s) 610 to carry out actions describedabove. In certain embodiments, such software or firmware may beinitially provided to the server 600 by downloading it from a remotesystem through the server 600 (e.g., via network adapter 640).

The techniques introduced herein can be implemented by, for example,programmable circuitry (e.g., one or more microprocessors) programmedwith software and/or firmware, or entirely in special-purpose hardwiredcircuitry, or in a combination of such forms. Special-purpose hardwiredcircuitry may be in the form of, for example, one or moreapplication-specific integrated circuits (ASICs), programmable logicdevices (PLDs), field-programmable gate arrays (FPGAs), etc.

Software or firmware for use in implementing the techniques introducedhere may be stored on a machine-readable storage medium and may beexecuted by one or more general-purpose or special-purpose programmablemicroprocessors. A “machine-readable storage medium”, as the term isused herein, includes any mechanism that can store information in a formaccessible by a machine (a machine may be, for example, a computer,network device, cellular phone, personal digital assistant (PDA),manufacturing tool, any device with one or more processors, etc.). Forexample, a machine-accessible storage medium includesrecordable/non-recordable media (e.g., read-only memory (ROM); randomaccess memory (RAM); magnetic disk storage media; optical storage media;flash memory devices; etc.), etc.

The term “logic”, as used herein, can include, for example, programmablecircuitry programmed with specific software and/or firmware,special-purpose hardwired circuitry, or a combination thereof.

In addition to the above mentioned examples, various other modificationsand alterations of the invention may be made without departing from theinvention. Accordingly, the above disclosure is not to be considered aslimiting and the appended claims are to be interpreted as encompassingthe true spirit and the entire scope of the invention.

What is claimed is:
 1. A computer-implemented method comprising:detecting, by a computing device, an identity of a network to which thecomputing device is connected or is to be connected, during a networkidentification process executed on the computing device, wherein thenetwork identification process is triggered by an event of the computingdevice changing its location, wherein the detecting the identity of agiven network to which a given computing device is connected or is to beconnected, during a booting process executed on the given computingdevice, is performed by identifying a radio frequency of the givennetwork; identifying, by the computing device, a corporate account for auser of the computing device based on a subscriber number associatedwith the computing device; sending a request including both the identityof the network and the identified corporate account to a remoteregistration service; receiving, by the computing device, an instructionfrom the remote registration service identifying a distribution of anoperating system specific for the network, wherein the distribution ofthe operating system is customized based on the identity of the networkand the identified corporate account of the user of the computingdevice, wherein the instruction from the remote registration serviceincludes a location where the distribution of the operating system isstored; retrieving from a cloud storage service, by the computingdevice, a difference between the distribution of the operating systemand an operating system currently installed on the computing device;loading, by the computing device, the distribution of the operatingsystem on the computing device; and applying, by the computing device,user interface settings or loading pre-loaded applications specific forthe identified corporate account onto the computing device.
 2. Thecomputer-implemented method of claim 1, wherein the networkidentification process is a device booting process or a networkconnection process.
 3. The computer-implemented method of claim 1,wherein the network identification process is further triggered by anevent of a subscriber module of the computing device being replaced, ora scheduled network detecting event.
 4. The computer-implemented methodof claim 1, wherein the detecting comprises: detecting, by the computingdevice, an identity of a network to which a computing device isconnected or is to be connected, during a booting process executed onthe computing device, by examining a subscriber module electronicallyconnected to the computing device.
 5. The computer-implemented method ofclaim 4, wherein the subscriber module is a subscriber identificationmodule (SIM) card.
 6. The computer-implemented method of claim 1,wherein the detecting further comprises: detecting, by the computingdevice, the identity of the given network to which a computing device isconnected or is to be connected, during a booting process executed onthe computing device, by identifying a service set identification (SSID)of the given network or a media access control (MAC) address of agateway of the given network.
 7. The computer-implemented method ofclaim 1, wherein the loading comprises: loading, by the computingdevice, the distribution of the operating system on the computing deviceby restarting the computing device.
 8. The computer-implemented methodof claim 1, wherein the loading comprises: loading, by the computingdevice, the distribution of the operating system on the computing deviceby applying customized features of the distribution to an operatingsystem currently running on the computing device without restarting thecomputing device.
 9. The computer-implemented method of claim 8, whereinthe customized features include pre-loaded applications or userinterface designs.
 10. The computer-implemented method of claim 1, theidentification of the corporate account for the user further being basedon a user identity, or the network connected to the computing device.11. An electronic device comprising: a processor; a network componentconfigured to communicate with a remote registration service; a memorycomponent storing instructions which, when executed by the processor,cause the electronic device to perform a process including: detecting anidentity of a network to which the electronic device is connected or isto be connected, during a network identification process executed on theelectronic device, wherein the network identification process istriggered by an event of the electronic device changing its location,wherein the detecting the identity of a given network to which a givenelectronic device is connected or is to be connected, during a bootingprocess executed on the given electronic device, is performed byidentifying a radio frequency of the given network; identifying acorporate account for a user of the electronic device based on asubscriber number associated with the electronic device; sending arequest including both the identity of the network and the identifiedcorporate account to a remote registration service; receiving aninstruction from the remote registration service identifying adistribution of an operating system specific for the network, whereinthe distribution of the operating system is customized based on theidentity of the network and the identified corporate account of the userof the electronic device, wherein the instruction from the remoteregistration service includes a location where the distribution of theoperating system is stored; loading the distribution of the operatingsystem on the electronic device; applying user interface settings orloading pre-loaded applications specific for the identified corporateaccount onto the electronic device; and a data retrieving componentconfigured to retrieve a difference between the distribution of theoperating system and an operating system currently running on theelectronic device.
 12. The electronic device of claim 11, furthercomprising: a circuitry configured to electronically connect to asubscriber identification module (SIM) card such that the identity ofthe network can be detected by examining the subscriber module.
 13. Theelectronic device of claim 11, further comprising: a data retrievingcomponent configured to retrieve the distribution of the operatingsystem.
 14. A method, comprising: identifying, by an electronic device,a subscriber module being inserted into the electronic device;detecting, by the electronic device, an identity of a network to which acomputing device is connected or is to be connected, during a networkidentification process executed on the computing device, wherein thenetwork identification process is triggered by the identified subscribermodule; identifying, by the electronic device, a corporate account for auser of the computing device based on an identity of the subscribermodule, the identity of the subscriber module including a subscribernumber associated with the subscriber module; sending, by the electronicdevice, a request including both the identity of the network and theidentified corporate account to a remote registration service;retrieving from a cloud storage system, by the electronic device, adifference between a distribution of an operating system from the cloudstorage system and an operating system currently running on theelectronic device, wherein the operating system from the cloud storagesystem is customized based on the identity of the subscriber module, theoperating system from the cloud storage system being customized based onthe identity of the network and the identified corporate accountassociated with the subscriber module; executing, by the electronicdevice, the retrieved difference on the electronic device so that theoperating system replaces the operating system currently running on theelectronic device with the distribution of the operating system from thecloud storage system; and applying, by the electronic device, userinterface settings or loading pre-loaded applications specific for theidentified corporate account onto the computing device.
 15. The methodof claim 14, wherein the subscriber module contains identity informationof a subscriber of a network.
 16. The method of claim 14, wherein thesubscriber module includes subscriber information being used to identifya network for the subscriber module.
 17. The method of claim 14, furthercomprising: determining, by the electronic device, an identity of theuser of the subscriber module based on the information in subscribermodule; and sending, by the electronic device, a request including theidentity of the user to a registration server, wherein the registrationserver determines an operating system for the user.
 18. The method ofclaim 14, further comprising: determining, by the electronic device, anidentity of an organization owning the subscriber module based oninformation in the subscriber module; and sending, by the electronicdevice, a request including the identity of the organization to aregistration server, wherein the registration server determines anoperating system for the organization.